home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #061 (1990-04)(Amiga User Group Deutschland e.V.).zip / Franz PD Disk #061 (1990-04)(Amiga User Group Deutschland e.V.).adf / Öko / ÖKO.Quelltext < prev    next >
Text File  |  1989-07-02  |  68KB  |  1,513 lines

  1.  
  2. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3. !                                                                 !
  4. !     ÖKO V 0.9    Norbert Ellert, 3208 Giesen, Meisenweg 24 a    !
  5. !                                                                 !
  6. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  7.  
  8. ! 35. Änderung vom 23.4.89
  9.  
  10. ! -------------- Datas fÜr Gerichte und je 7 Zutaten ---------------------
  11.  
  12. DATA "Tomatensuppe mit Knoblauchbaguette","geschälte Tomaten","SuppengrÜn","Beinscheibe","Reis","Baguette","",""
  13. DATA "Sauerkrauteintopf mit WÜrstchen","Sauerkraut","Bratwurst","Kartoffeln","Zwiebeln","saure Sahne","",""
  14. DATA "Königsberger Klopse","Kartoffeln","Mett","Zwiebeln","Brötchen","Kapern","Pfefferkörner","Lorbeerblatt"
  15. DATA "Pfannkuchen","Milch","Eier","Mehl","","","",""
  16. DATA "Nudeln mit Tomatensoße","Nudeln","Tomatenmark","Zwiebeln","Schinkenspeck","","",""
  17. DATA "Russischer Hackfleischtopf","Mett","saure Sahne","Lauch","Zwiebeln","Ketchup","Senf",""
  18. DATA "Bratkartoffeln mit Hering","Bratheringe","Kartoffeln","Zwiebeln","","","",""
  19. DATA "Griesschnitten mit Apfelmus","Gries","Milch","Zucker","Eier","Apfelmus","Paniermehl",""
  20. DATA "Schweinefilet im Blätterteig","Schweinefilet","Zwiebeln","Schinkenspeck","Eier","Blätterteig","",""
  21. DATA "Linsensuppe mit Rauchenden","Linsen","Kartoffeln","SuppengrÜn","klare BrÜhe","Rauchenden","",""
  22. DATA "Rosenkohlauflauf","Rosenkohl","gekochter Schinken","geriebener Käse","Creme fraiche","","",""
  23. DATA "Mettklöße mit Kartoffelbrei/Bohnen","Mett","Kartoffeln","Eier","Zwiebeln","Bohnen","",""
  24. DATA "Puffer mit Zucker und Apfelmus","Kartoffeln","Möhren","Zwiebeln","Mehl","Apfelmus","Zucker",""
  25. DATA "Käsepuffer","Kartoffeln","Möhren","Zwiebeln","Mehl","Emmentaler","",""
  26. DATA "Kasseler mit Sauerkraut und Klößen","Kasseler","Kartoffelklöße","Sauerkraut","","","",""
  27. DATA "Schweinebraten mit Semmelknödeln","Schweinebraten","Semmelknödel","","","","",""
  28. DATA "Milchreis mit Apfelmus","Milch","Milchreis","Apfelmus","Zimt","Zucker","",""
  29. DATA "Kartoffelsuppe mit Toast","Kartoffeln","Porree","klare BrÜhe","Sahne","Toastbrot","",""
  30. DATA "Gulasch mit Nudeln und Salat","Gulasch","Nudeln","Champignons","Tomaten","Zwiebeln","Salat",""
  31. DATA "Kartoffelbrei mit RÜhrei und Spinat","Eier","Mehl","Milch","Kartoffeln","Spinat","",""
  32. DATA "Puterkeule mit Reis und Salat","Puterkeule","Reis","Salat","","","",""
  33. DATA "Nudeln mit Mettsoße","Nudeln","Mett","Zwiebeln","Tomatenmark","saure Sahne","",""
  34. DATA "Hähnchen mit GemÜsereis","Hähnchen","Reis","Paprika","Tomaten","Zwiebeln","",""
  35. DATA "Falscher Hase","Mett","Zwiebeln","Eier","Senf","Porree","Möhren","Kartoffeln"
  36. DATA "Ötti`s gute Hamburger","Sesambrötchen","Rindermett","Ketchup","Salat","Mayonaise","Röstzwiebeln",""
  37. DATA "Eierreis mit Pilzen","Eier","Reis","Zwiebeln","Champignons","geriebener Käse","",""
  38. DATA "Rinderbraten mit Klößen und Rotkohl","Rinderbraten","Kartoffelklöße","Rotkohl","","","",""
  39. DATA "Blätterteig-Pirogge","Blätterteig","Mett","Gurken","Schafskäse","Eier","Dill","Senf"
  40. DATA "Erbsensuppe mit Grießklößchen","Erbsen","Beinscheibe","SuppengrÜn","Grieß","Milch","Eier",""
  41. DATA "Sauerkrautsuppe","Sauerkraut","klare BrÜhe","Sahne","Kasseler","","",""
  42. DATA "Nudeln mit Schinken und Sahnesoße","Nudeln","Schinken","Sahne","","","",""
  43. DATA "Braunkohl mit Bregenwust","Braunkohl","Schmalz","Zwiebeln","Senf","Bregenwurst","",""
  44. DATA "Ötti`s gute Pizza","Mehl","Öl","Schinken","Champignons","geriebener Käse","geschälte Tomaten",""
  45. DATA "Bratwurst m. Kartoffelbrei/Broccoli","Bratwurst","Kartoffeln","Broccoli","","","",""
  46. DATA "Risi-Bisi mit Salat","Reis","Erbsen","gekochter Schinken","Zwiebeln","klare BrÜhe","Salat",""
  47. DATA "Überbackene Champignonkoteletts","Koteletts","Champignons","geriebener Käse","Paniermehl","Sahne","",""
  48. DATA "TÜrkische Hacksteaks mit Reis","Mett","Schafskäse","Reis","Zwiebeln","","",""
  49. DATA "Strammer Max","Schinken","Brot","Eier","","","",""
  50. DATA "SteckrÜbeneintopf","SteckrÜben","Schweinefleisch","SuppengrÜn","Kartoffeln","","",""
  51. DATA "Nudelauflauf","Nudeln","Mett","Tomaten","Eier","Milch","Paniermehl","Margarine"
  52. DATA "Reis mit HÜhnerfleisch","Reis","Hähnchen","Zwiebeln","","","",""
  53. DATA "Pfannkuchen m. ChampignonfÜllung","Champignons","Eier","Milch","Mehl","","",""
  54. DATA "Fischstäbchen mit Pommes","Fischstäbchen","Pommes Frites","Ketchup","Remoulade","","",""
  55. DATA "Kohlrouladen","Wirsingkohl","Mett","Zwiebeln","Eier","Kartoffeln","",""
  56. DATA "Pfannkuchen mit PutenfÜllung","Milch","Eier","Mehl","Lauchzwiebeln","Putenbrust","Sojasoße","Sojasprossen"
  57. DATA "Porree-Pizza","Porree","Schmelzkäse","Hefe","Cabanossi","Tomaten","",""
  58. DATA "Senfeier mit Pellkartoffeln","Senf","Eier","Kartoffeln","","","",""
  59. DATA "ErbspÜrree-Auflauf","ErbspÜrree","Mett","klare BrÜhe","Zwiebeln","","",""
  60. DATA "SÜßer Reisauflauf","Milchreis","Milch","Eier","Vanillezucker","Butter","",""
  61. DATA "Pfannkuchen mit PflaumenfÜllung","Eier","Milch","Mehl","Pflaumen","Pflaumenmus","Zimt",""
  62. DATA "SteckrÜben mit Frikadellen","SteckrÜben","Mett","Zwiebeln","","","",""
  63. DATA "Gebackener Camembert","Camembert","Toast","Paniermehl","Preiselbeeren","","",""
  64. DATA "Bratwurst mit Kartoffelsalat","Bratwurst","Kartoffeln","Gurken","Zwiebeln","Majonaise","Fleischsalat",""
  65. DATA "Rosenkohlsuppe","Rosenkohl","klare BrÜhe","Creme fraiche","","","",""
  66. DATA "Tiroler Leber","Leber","Zwiebeln","Ketchup","saure Sahne","Schinkenspeck","",""
  67. DATA "Bratkartoffeln mit Ei","Karoffeln","Eier","Zwiebeln","","","",""
  68. DATA "Eisbein mit Sauerkraut","Eisbein","Sauerkraut","Zwiebeln","Honig","Wacholderbeeren","Kartoffeln","Senf"
  69. DATA "Hähnchenragout mit Reis","Reis","Hähnchen","Sojasprossen","klare BrÜhe","saure Sahne","",""
  70. DATA "Nudeltortellini mit Salat","Salat","Nudeln","geriebener Käse","Eier ","Milch","Creme fraiche",""
  71. DATA "Vorschlagsliste beginnt von vorn !","","","","","","",""
  72. DATA "*"                          ! Endekennzeichnung fÜr z.Zt. 60 Gerichte und Zutaten
  73.  
  74. ! ----------------------- Datas fÜr Waren --------------------------------
  75.  
  76.       ! --- Shopingzone ---
  77. DATA "Film abgeben","Film abholen","Leergut abgeben","Reinigung","Schuster"
  78.       ! --- Wurst,Fleisch,GeflÜgel ---
  79. DATA "Mett","Aufschnitt","Streichwurst","Cabanossi","Schinken","Bauchfleisch"
  80. DATA "Fleischwurst","Hähnchen"
  81.       ! --- Käsetheke ---
  82. DATA "Schafskäse","Gouda","Emmenthaler","Bavaria Blue"
  83.       ! --- Obst und GemÜse
  84. DATA "SuppengrÜn","Salat","Bananen","Äpfel","Apfelsinen","Mandarinen","Ananas"
  85. DATA "Kartoffeln","GrÜne Gurke","Tomaten","Petersilie","Kresse","Porree"
  86. DATA "SaisongemÜse","Rosenkohl","Wirsingkohl","Paprika","Broccoli","Zwiebeln"
  87. DATA "Möhren"
  88.       ! --- Frisch- und Milchprodukte ---
  89. DATA "Butter","Margarine","Eier","Milch","Quark","Hefe","Sahne","saure Sahne"
  90. DATA "Joghurt","Creme fraiche","Camembert","Schmelzkäse","Fleischsalat"
  91. DATA "Heringssalat","Bratheringe"
  92.       ! --- Getränke ---
  93. DATA "Saft","Wasser","Bier","Weinbrand","Sekt"
  94.       ! --- Konserven ---
  95. DATA "Sauerkraut","Bohnen","Erbsen","Champignons","WÜrstchen","Gurken"
  96.       ! --- Nährmittel ---
  97. DATA "Brot","Toast","Baguette","Pumpernickel"
  98. DATA "Roggenmehl","Weizenmehl","Paniermehl","Blätterteig"
  99. DATA "Zucker","Salz","Kaffee","Kakao","Nutella","Honig","Sirup","Pflaumenmus"
  100. DATA "Nudeln","Linsen","Reis","Öl","klare BrÜhe","Ketchup","Maggi","Senf"
  101. DATA "Remoulade","Majonaise","Kartoffelklöße","Semmelknödel","Knabbersachen"
  102.       ! --- Hygiene ---
  103. DATA "Deodorant","Zahnpasta","ZahnbÜrsten","Haarspray","Haarfestiger"
  104. DATA "TempotÜcher","KosmetiktÜcher","Tampons"
  105. DATA "Toilettenpapier","WC-Reiniger","WC-Duft","Fensterreiniger"
  106. DATA "Waschpulver","Feinwaschmittel"
  107. DATA "WeichspÜler","Haushaltsrolle","HandspÜlmittel","MaschinenspÜler"
  108. DATA "SpÜltÜcher","Topfschwämme","Gummihandschuhe","Schuhcreme"
  109.       ! --- TiefkÜhltheke ---
  110. DATA "Fischstäbchen","Eis","Spinat","Pommes Frites"
  111.       ! --- Sonstiges ---
  112. DATA "Tesafilm","Teelichter","Kerzen","FiltertÜten","Frischhaltefolie"
  113. DATA "MÜllbeutel"
  114. DATA "#"                          ! Endekennzeichnung fÜr z.Zt. 125 Waren
  115.  
  116. ! ------------------------- 3 Hauptteile ---------------------------------
  117.  
  118. SUB programmanfang
  119.     CALL vorbereitungen           ! Voreinstellungen und Dimensionierungen
  120.     CALL zettelaufbau             ! Leeren Zettel aufbauen und speichern
  121.     CALL felddefinition           ! Ein Feld definieren und speichern
  122. END SUB
  123.  
  124. SUB programmhauptteil
  125.     DO                            ! Schleife fÜr Neustart
  126.        CALL zuruecksetzen         ! Variablen fÜr Neustart zurÜcksetzen
  127.        CALL feldertext("startinfo")    ! Feldtexte: Start, Warum gibt es ÖKO ?
  128.        CALL zetteltext("oeko")    ! Starttext ÖKO V. 1.0 ausgeben
  129.        CALL quittungston          ! Aufbau akustisch bestätigen
  130.        CALL maustest              ! Welches Feld angeklickt ? (Schleife)
  131.     LOOP while zuende=0           ! Bis "ENDE" angeklickt             
  132. END SUB
  133.  
  134. SUB programmschluss
  135.     CALL zetteltext("byebye")     ! Abschiedsmeldung
  136.     CALL feldertext("byebye")     ! Felder löschen
  137.     CLOSE #1                      ! Druckerkanal schließen
  138.     PAUSE 3                       ! 3 Sekunden warten
  139.     CALL quittungston             ! Akustisches Schlußzeichen
  140.     CLEAR                         ! Bildschirm löschen
  141. END SUB
  142.  
  143. ! ------------------------- Unterprogramme -------------------------------
  144.  
  145. SUB vorbereitungen
  146.     SET WINDOW 0,640,0,200        ! Bildschirmkoordinaten
  147.     SET color mix (0) .5,.5,.5    ! Farbe: grau
  148.     SET color mix (1) 1,1,1       ! Farbe: weiß
  149.     SET color mix (2) 0,0,0       ! Farbe: schwarz
  150.     SET color mix (3) .9,.1,.1    ! Farbe: rot
  151.     DIM ztext$(19)                ! Zetteltexte dimensionieren (19 Zeilen)
  152.     DIM ftext$(8)                 ! Feldertexte dimensionieren ( 8 Zeilen)
  153.     DIM textfarbe(19)             ! Textfarbe dimensionieren (rot/schwarz) 
  154.     DIM feld(8)                   ! Flags fÜr gezeigte Felder dimensionieren 
  155.     DIM tagtext$(7)               ! TageskÜrzel dimensionieren
  156.     DIM tagbelegt(7)              ! Flags fÜr bereits belegte Wochentage
  157.     DIM gericht$(7)               ! Gerichte dimensionieren
  158.     DIM einlesezutat$(7)          ! Zutaten zum Einlesen dimensionieren
  159.     DIM zutaten$(7,7)             ! Feld fÜr Zutaten einer Woche
  160.     DIM hilfszutat1$(7)           ! Hilfsvariablen zum Zutatentauschen
  161.     DIM hilfszutat2$(7)           ! Hilfsvariablen zum Zutatentauschen
  162.     DIM ware$(109)                ! Waren dimensionieren 
  163.     DIM zutatenware$(49)          ! Zutaten zum Sortieren dimensionieren
  164.     DIM einleseware$(200)         ! Waren zum Einlesen dimensionieren
  165.     DIM taste(37)                 ! Zeichen fÜr Handeintrag dimensionieren
  166.     OPEN #1: printer              ! Druckerkanal öffnen
  167. END SUB
  168.  
  169. SUB zettelaufbau
  170.     SET color 2
  171.     BOX AREA 330,640,0,188        ! Zettelschatten zeichnen
  172.     SET color 1
  173.     BOX AREA 320,630,10,198       ! Zettel zeichnen
  174.     FOR i=0 to 19
  175.         SET color 0
  176.         BOX CIRCLE 329+i*15,336+i*15,191,195     ! Löcher zeichnen
  177.         FLOOD 330+i*15,193
  178.         SET color 2
  179.         BOX AREA 332+i*15,333+i*15,193,200  ! Drähte zeichnen
  180.     NEXT i
  181.     BOX KEEP 320,640,0,200 in zettel$  ! Zettel speichern
  182. END SUB
  183.  
  184. SUB felddefinition                ! Oberstes Feld definieren u. speichern
  185.     SET color 2
  186.     BOX AREA 10,310,168,188       ! Feldschatten zeichnen
  187.     BOX KEEP 10,310,168,188 in feldschatten$     ! und speichern
  188.     SET color 1
  189.     BOX AREA 0,300,178,198        ! Feld zeichnen
  190.     SET color 2
  191.     BOX LINES 0,300,178,198       ! Feldrahmen zeichnen
  192.     BOX KEEP 0,300,178,198 in feld$    ! und beides speichern
  193. END SUB
  194.  
  195. SUB zuruecksetzen
  196.     RESTORE
  197.     LET tag=1                     ! fÜr Tagesleiste Montag einstellen
  198.     LET xt=10                     ! x-Wert fÜr "MO"-Ausgabe
  199.     LET neustart,zuende,progteil,druck,gedruckt,zettel,z=0
  200.     LET warenzahl,warenzaehler,vorschlagszaehler=0
  201.     MAT tagbelegt=0
  202.     MAT gericht$=""
  203.     MAT ware$=""
  204.     MAT zutaten$=""               ! Vorzeilen: alle Werte zurÜcksetzen und löschen
  205. END SUB
  206.  
  207. SUB feldertext(titel$)            ! Texteausgabe in Felder
  208.     IF titel$<>"modimidofrsaso" then   ! Felder nicht löschen bei Tages-
  209.        FOR i=1 to 8               ! kÜrzelzuweisung
  210.            LET ftext$(i)=""       ! alte Texte löschen
  211.            LET textfarbe(i)=0     ! alte rot/schwarz Zuweisung löschen
  212.        NEXT i
  213.     END IF
  214.     SELECT CASE titel$
  215.     CASE "modimidofrsaso"
  216.          SET color 2
  217.          CALL modimidofrsaso      ! WochentagskÜrzel zuweisen
  218.          FOR i=0 to 6
  219.              PLOT TEXT ,at 10+i*44,17 :tagtext$(i+1)  ! KÜrzel eintragen
  220.          NEXT i
  221.          EXIT SUB
  222.     CASE "startinfo"
  223.          CALL felder(0,0,3,0,0,6,0,0)  ! Feld 3 und 6 darstellen
  224.          CALL startinfo           ! Feldertexte zuweisen
  225.     CASE "entstehung"
  226.          CALL felder(0,0,3,0,0,6,0,0)  ! ! Feld 3 und 6 darstellen
  227.          CALL startinfo           ! ! Feldertextzuweisung wie vor
  228.          LET ftext$(6)="WAS KANN Ö-K-O ?"   ! kleine Änderung
  229.     CASE "koennen"
  230.          CALL felder(0,0,3,0,0,6,0,0)  ! ! Feld 3 und 6 darstellen
  231.          CALL startinfo           ! ! Feldertextzuweisung wie vor
  232.          LET ftext$(6)="WIE WIRD Ö-K-O BEDIENT ?"     ! kleine Änderung
  233.     CASE "bedienungallgemein"
  234.          CALL felder(0,0,3,0,0,0,0,0)  ! Feld 3 darstellen
  235.          CALL startinfo           ! Feldertextzuweisung wie vor
  236.          LET ftext$(6)=""         ! Feld 6 löschen
  237.     CASE "menueauswahl"
  238.          CALL felder(1,2,3,4,5,6,7,0)
  239.          CALL menueauswahl        ! Feldertexte zuweisen
  240.     CASE "tastatur"
  241.          CALL felder(1,0,0,0,0,0,0,0)
  242.          CALL tastatur            ! Feldertexte zuweisen
  243.     CASE "tagetauschen"
  244.          CALL felder(1,2,0,0,5,0,0,0)
  245.          CALL tagetauschen        ! Feldertexte zuweisen
  246.          CALL tagesleiste         ! Tagesleiste zeigen
  247.     CASE "ok"
  248.          LET tagesleisteflag=0    ! Maustest Tagesleiste aus
  249.          CALL felder(1,0,0,0,0,0,0,0)  ! Feld 1 darstellen
  250.          CALL ok                  ! Feldertexte zuweisen
  251.     CASE "einkaufswahl"
  252.          CALL felder(1,2,3,4,5,0,7,8)
  253.          CALL einkaufswahl        ! Feldertexte zuweisen
  254.     CASE "endeeinkaufswahl"
  255.          CALL felder(1,2,0,4,5,0,7,8)
  256.          CALL einkaufswahl        ! Feldertexte wie vor zuweisen
  257.          LET ftext$(3)=""         ! Feld 3 löschen
  258.     CASE "zettelschluss"
  259.          CALL felder(0,0,0,0,5,0,7,8)
  260.          CALL zettelschluss       ! Feldertexte zuweisen
  261.     CASE "ausgabe"
  262.          CALL felder(1,0,3,0,5,0,7,8)
  263.          CALL ausgabe             ! Feldertexte zuweisen
  264.     CASE "byebye"
  265.          CALL felder(0,0,0,0,0,0,0,0)  ! Alle Felder löschen
  266.     END SELECT
  267.     FOR i=1 to 8
  268.         IF i=textfarbe(i) then SET color 3 else SET color 2
  269.         CALL zentrieren(ftext$(i),150,209-i*24)  ! und ausgeben
  270.     NEXT i
  271.     SET color 2                   ! Schrift auf schwarz zurÜcksetzen
  272. END SUB
  273.  
  274. SUB zentrieren(text$,xmitte,y)    ! Text zentrieren 
  275.     LET wortlaenge=len(text$)*8   ! (Parameter: Text-String, 
  276.     LET x=xmitte-wortlaenge/2     ! Mitte des x-Wertes, y-Wert)
  277.     PLOT TEXT,at x,y :text$       ! Zentrierte Textausgabe
  278. END SUB
  279.  
  280. SUB felder(a,b,c,d,e,f,g,h)       ! Felderleiste aufbauen
  281.     BOX CLEAR 0,310,0,198         ! alte Felder löschen
  282.     FOR i=1 to 8
  283.         LET feld(i)=0             ! Feldflags löschen
  284.     NEXT i
  285.     IF a=1 then                   ! Feld 1
  286.        LET feld(1)=1              ! Feldflag fÜr KlickprÜfung
  287.        BOX SHOW feldschatten$ at 10,168     ! gespeicherter Schatten
  288.        BOX SHOW feld$ at 0,178    ! gespeichertes Feld u. Rahmen
  289.     END IF
  290.     IF b=2 then                   ! Feld 2
  291.        LET feld(2)=2              ! Feldflag fÜr KlickprÜfung
  292.        BOX SHOW feldschatten$ at 10,144     ! gespeicherter Schatten
  293.        BOX SHOW feld$ at 0,154    ! gespeichertes Feld u. Rahmen
  294.     END IF
  295.     IF c=3 then                   ! Feld 3
  296.        LET feld(3)=3              ! Feldflag fÜr KlickprÜfung
  297.        BOX SHOW feldschatten$ at 10,120     ! gespeicherter Schatten
  298.        BOX SHOW feld$ at 0,130    ! gespeichertes Feld u. Rahmen
  299.     END IF
  300.     IF d=4 then                   ! Feld 4
  301.        LET feld(4)=4              ! Feldflag fÜr KlickprÜfung
  302.        BOX SHOW feldschatten$ at 10,96      ! gespeicherter Schatten
  303.        BOX SHOW feld$ at 0,106    ! gespeichertes Feld u. Rahmen
  304.     END IF
  305.     IF e=5 then                   ! Feld 5
  306.        LET feld(5)=5              ! Feldflag fÜr KlickprÜfung
  307.        BOX SHOW feldschatten$ at 10,72      ! gespeicherter Schatten
  308.        BOX SHOW feld$ at 0,82     ! gespeichertes Feld u. Rahmen
  309.     END IF
  310.     IF f=6 then                   ! Feld 6
  311.        LET feld(6)=6              ! Feldflag fÜr KlickprÜfung
  312.        BOX SHOW feldschatten$ at 10,48      ! gespeicherter Schatten
  313.        BOX SHOW feld$ at 0,58     ! gespeichertes Feld u. Rahmen
  314.     END IF
  315.     IF g=7 then                   ! Feld 7
  316.        LET feld(7)=7              ! Feldflag fÜr KlickprÜfung
  317.        BOX SHOW feldschatten$ at 10,24      ! gespeicherter Schatten
  318.        BOX SHOW feld$ at 0,34     ! gespeichertes Feld u. Rahmen
  319.     END IF
  320.     IF h=8 then                   ! Feld 8
  321.        LET feld(8)=8              ! Feldflag fÜr KlickprÜfung
  322.        BOX SHOW feldschatten$ at 10,0  ! gespeicherter Schatten
  323.        BOX SHOW feld$ at 0,10     ! gespeichertes Feld u. Rahmen
  324.     END IF
  325. END SUB
  326.  
  327. SUB zetteltext(titel$)            ! Textausgabe auf Zettel
  328.     FOR i=1 to 19
  329.         LET ztext$(i)=""          ! alte Textzuweisung löschen
  330.         LET textfarbe(i)=0        ! alte rot/schwarz Zuweisung löschen
  331.     NEXT i
  332.     SELECT CASE titel$
  333.     CASE "oeko"
  334.          CALL oeko                ! Titelbildtext zuweisen 
  335.     CASE "entstehung"
  336.          CALL entstehung          ! Text zuweisen
  337.     CASE "koennen"
  338.          CALL koennen             ! Text zuweisen
  339.     CASE "bedienungallgemein"
  340.          CALL bedienungallgemein  ! Text zuweisen
  341.     CASE "bedienungkuechenzettel"
  342.          CALL bedienungkuechenzettel   ! Text zuweisen
  343.     CASE "kuechenzettel"
  344.          CALL kuechenzettel       ! Text zuweisen
  345.     CASE "listevonvorn"
  346.          CALL listevonvorn        ! Text zuweisen
  347.     CASE "belegtertag"
  348.          CALL belegtertag         ! Text zuweisen
  349.     CASE "handeintrag"
  350.          CALL handeintrag         ! Text zuweisen
  351.     CASE "handeintrageinkauf"
  352.          CALL handeintrageinkauf  ! Text zuweisen
  353.     CASE "tauschinfo"
  354.          CALL tauschinfo          ! Text zuweisen
  355.     CASE "bedienungeinkaufszettel"
  356.          CALL bedienungeinkaufszettel  ! Text zuweisen
  357.     CASE "einkaufszettel1"
  358.          CALL einkaufszettel1     ! Text zuweisen
  359.     CASE "einkaufszettel2"
  360.          CALL einkaufszettel2     ! Text zuweisen
  361.     CASE "einkaufszettel3"
  362.          CALL einkaufszettel3     ! Text zuweisen
  363.     CASE "einkaufszettelvoll"
  364.          CALL einkaufszettelvoll  ! Text zuweisen
  365.     CASE "vorschlagsende"
  366.          CALL vorschlagsende      ! Text zuweisen
  367.     CASE "druckervorbereiten"
  368.          CALL druckervorbereiten  ! Text zuweisen
  369.     CASE "bedienungausgabe"
  370.          CALL bedienungausgabe    ! Text zuweisen
  371.     CASE "erstdrucken"
  372.          CALL erstdrucken         ! Text zuweisen
  373.     CASE "byebye"
  374.          CALL byebye              ! Text zuweisen
  375.     CASE "wartendruck"
  376.          CALL wartendruck         ! Text zuweisen
  377.     CASE "druckfertig"
  378.          CALL druckfertig         ! Text zuweisen
  379.     END SELECT
  380.     BOX SHOW zettel$ at 320,0     ! neuen leeren Zettel 
  381.     FOR i=1 to 19
  382.         IF textfarbe(i)=i then SET color 3 else SET color 2     ! rot od. schwarz
  383.         CALL zentrieren(ztext$(i),475,187-i*9)   !  und Text ausgeben
  384.     NEXT i
  385.     SET color 2                   ! Schrift auf schwarz zurÜcksetzen
  386. END SUB
  387.  
  388. SUB quittungston
  389.     FOR i=1 to 3
  390.         SOUND 600,.03
  391.         SOUND 1500,.03
  392.     NEXT i
  393. END SUB
  394.  
  395. SUB maustest
  396.     DO
  397.        IF zuende=1 or neustart=1 then EXIT SUB   ! wenn Ende oder Neustart !
  398.        GET POINT x,y              ! Klickkoordinaten speichern
  399.        IF tagesleisteflag=1 then  ! Nur wenn Tagesleiste vorhanden !
  400.           IF y>10 and y<30 then   ! Tagesleiste ?
  401.              IF x>0 and x<35 then      ! Samstag ?
  402.                 LET xt=10         ! x-Wert fÜr TageskÜrzelausgabe
  403.                 LET tag=1         ! Tagesflag
  404.                 LET tagversuch=0  ! Überschreibschutz fÜr Wochentag an
  405.                 CALL quittungston
  406.                 CALL taginvertieren    ! SA invertieren
  407.              ELSEIF x>44 and x<79 then      ! Sonntag ?
  408.                 LET xt=54
  409.                 LET tag=2
  410.                 LET tagversuch=0
  411.                 CALL quittungston
  412.                 CALL taginvertieren    ! SO invertieren
  413.              ELSEIF x>88 and x<123 then     ! Montag ?
  414.                 LET xt=98
  415.                 LET tag=3
  416.                 LET tagversuch=0
  417.                 CALL quittungston
  418.                 CALL taginvertieren    ! MO invertieren
  419.              ELSEIF x>132 and x<167 then    ! Dienstag ?
  420.                 LET xt=142
  421.                 LET tag=4
  422.                 LET tagversuch=0
  423.                 CALL quittungston
  424.                 CALL taginvertieren    ! DI invertieren
  425.              ELSEIF x>176 and x<211 then    ! Mittwoch ?
  426.                 LET xt=186
  427.                 LET tag=5
  428.                 LET tagversuch=0
  429.                 CALL quittungston
  430.                 CALL taginvertieren    ! MI invertieren
  431.              ELSEIF x>220 and x<255 then    ! Donnerstag ?
  432.                 LET xt=230
  433.                 LET tag=6
  434.                 LET tagversuch=0
  435.                 CALL quittungston
  436.                 CALL taginvertieren    ! DO invertieren
  437.              ELSEIF x>264 and x<299 then    ! Freitag ?
  438.                 LET xt=274
  439.                 LET tag=7
  440.                 LET tagversuch=0
  441.                 CALL quittungston
  442.                 CALL taginvertieren    ! FR invertieren
  443.              END IF
  444.           END IF
  445.        END IF
  446.        IF x>0 and x<300 then      ! Felderleiste ?
  447.           IF y<198 and y>178 then      ! 1. Feld von oben ?
  448.              LET feldnr=1
  449.              IF feld(1)=feldnr then CALL feldgeklickt      ! Wenn Feld vorhanden
  450.           ELSEIF y<174 and y>154 then  ! 2. Feld von oben ?
  451.              LET feldnr=2
  452.              IF feld(2)=feldnr then CALL feldgeklickt      ! Wenn Feld vorhanden
  453.           ELSEIF y<150 and y>130 then  ! 3. Feld von oben ?
  454.              LET feldnr=3
  455.              IF feld(3)=feldnr then CALL feldgeklickt      ! Wenn Feld vorhanden
  456.           ELSEIF y<126 and y>106 then  ! 4. Feld von oben ?
  457.              LET feldnr=4
  458.              IF feld(4)=feldnr then CALL feldgeklickt      ! Wenn Feld vorhanden
  459.           ELSEIF y<102 and y>82 then   ! 5. Feld von oben ?
  460.              LET feldnr=5
  461.              IF feld(5)=feldnr then CALL feldgeklickt      ! Wenn Feld vorhanden
  462.           ELSEIF y<78 and y>58 then    ! 6. Feld von oben ?
  463.              LET feldnr=6
  464.              IF feld(6)=feldnr then CALL feldgeklickt      ! Wenn Feld vorhanden
  465.           ELSEIF y<54 and y>34 then    ! 7. Feld von oben ?
  466.              LET feldnr=7
  467.              IF feld(7)=feldnr then CALL feldgeklickt      ! Wenn Feld vorhanden
  468.           ELSEIF y<30 and y>10 then    ! 8. Feld von oben ?
  469.              LET FELDNR=8
  470.              IF feld(8)=feldnr then CALL feldgeklickt      ! Wenn Feld vorhanden
  471.           END IF
  472.        END IF
  473.     LOOP
  474.     SET color 2                   ! Schrift wieder schwarz
  475. END SUB
  476.  
  477. SUB feldgeklickt
  478.     IF feldnr>3 then
  479.        LET tagversuch=0           ! Überschreibschutz an, falls Überschreiben nicht bestätigt
  480.        LET hand=0                 ! Handeintragsmarkierung löschen
  481.     END IF
  482.     IF tauschversuch>0 and feldnr>1 and feldnr<>5 then LET tauschversuch=0     ! Tauschversuch zurÜcksetzen, wenn nicht Tauschen bestätigt
  483.     IF gedruckt=0 then            ! Wenn noch nicht gedruckt
  484.        IF druck=1 and feldnr>1 and feldnr<7 then LET druck=0    ! Sicherheitsabfrage bei Neustart und Ende zurÜcksetzen, wenn nicht bestätigt
  485.     END IF
  486.     IF feldnr<>3 then LET zettel=0     ! Zettel durchblättern auf Anfang (KÜchenzettel) setzen, wenn nicht weiter geblättert
  487.     SELECT CASE feldnr            ! Feldnummer prÜfen
  488.     CASE 1
  489.          IF ftext$(1)="" then     ! nicht klingeln, da Vorschlagszeile
  490.             EXIT SUB
  491.          ELSEIF ftext$(1)="ALLE ZETTEL DRUCKEN" then
  492.             CALL quittungston
  493.             CALL drucker
  494.          ELSEIF ftext$(1)="OK" and progteil=0 then
  495.             CALL zetteltext("kuechenzettel")     ! KÜchenzetteltext ausgeben
  496.             CALL feldertext("menueauswahl")      ! MenÜauswahltexte ausgeben
  497.             CALL tagesleiste      ! Tagesleiste wieder darstellen
  498.             SET color 3
  499.             CALL zentrieren(anzeigegericht$,150,185)
  500.          ELSEIF ftext$(1)="OK" and progteil=1 then    ! Wenn Einkaufszettel
  501.             IF ez=1 then          ! Wenn Seite 1
  502.                CALL zetteltext("einkaufszettel1")
  503.             ELSEIF ez=2 then      ! Wenn Seite 2
  504.                CALL zetteltext("einkaufszettel2")
  505.             ELSEIF ez=3 then      ! Wenn Seite 3
  506.                CALL zetteltext("einkaufszettel3")
  507.             END IF
  508.             IF warenzaehler<=108 then  ! Wenn Einkaufszettel noch nicht voll
  509.                IF vorschlagszaehler<>warenzahl then   ! Wenn noch Waren in der Liste
  510.                   CALL feldertext("einkaufswahl")     ! Einkaufsauswahlfelder zeigen
  511.                ELSEIF vorschlagszaehler=warenzahl then     ! Wenn Warenliste zuende
  512.                   CALL feldertext("endeeinkaufswahl")      ! "Neuer Vorschlag" weg
  513.                END IF
  514.             ELSEIF warenzaehler>108 then    ! Wenn Einkaufszettel voll
  515.                CALL feldertext("zettelschluss")  ! Nur noch Feld 5,7,8
  516.                CALL quittungston
  517.                EXIT SUB
  518.             END IF
  519.             SET color 3
  520.             CALL zentrieren(anzeigeware$,150,185)     ! Letzte Ware wieder anzeigen
  521.          ELSEIF ftext$(1)="OK" and progteil=2 then    ! Ausgabeteil
  522.             IF gedruckt=1 then
  523.                CALL zetteltext("druckfertig")
  524.             ELSEIF gedruckt=0 then
  525.                CALL zetteltext("druckervorbereiten")  ! Vorbereitungstext ausgeben
  526.             END IF
  527.             CALL feldertext("ausgabe")      ! Ausgabefelder zeigen
  528.          END IF
  529.     CASE 2
  530.          IF ftext$(2)="ABBRUCH" then
  531.             CALL tauschende       ! Tauschabbruch
  532.          ELSEIF ftext$(2)="GERICHT EINTRAGEN" then
  533.             CALL gerichteintragen
  534.          ELSEIF ftext$(2)="WARE EINTRAGEN" then
  535.             CALL wareeintragen
  536.          END IF
  537.     CASE 3
  538.          IF ftext$(3)="START" then
  539.             CALL zetteltext("kuechenzettel")     ! KÜchenzetteltext ausgeben
  540.             CALL feldertext("menueauswahl")      ! MenÜauswahltexte ausgeben
  541.             CALL tagesleiste      ! Tagesleiste aufbauen und speichern
  542.             CALL gerichteinlesen
  543.          ELSEIF ftext$(3)="NEUER VORSCHLAG" then
  544.             CALL gerichteinlesen
  545.          ELSEIF ftext$(3)="NÄCHSTE WARE" then
  546.             CALL wareeinlesen
  547.          ELSEIF ftext$(3)="ALLE ZETTEL DURCHBLÄTTERN" then
  548.             IF zettel=0 then      ! KÜchenzettel zeigen
  549.                LET zettel=1
  550.                CALL zetteltext("kuechenzettel")
  551.             ELSEIF zettel=1 then  ! EINKAUFSZETTEL S.1 zeigen
  552.                IF warenzaehler>36 then
  553.                   LET zettel=2
  554.                ELSEIF warenzaehler<=36 then
  555.                   LET zettel=4
  556.                END IF
  557.                CALL zetteltext("einkaufszettel1")
  558.             ELSEIF zettel=2 then  ! ggfls. Einkaufszettel S.2 zeigen
  559.                IF warenzaehler>72 then
  560.                   LET zettel=3
  561.                ELSEIF warenzaehler<=72 then
  562.                   LET zettel=4
  563.                END IF
  564.                CALL zetteltext("einkaufszettel2")
  565.             ELSEIF zettel=3 then  ! ggfls. Einkaufszettel S.3 zeigen
  566.                LET zettel=4
  567.                CALL zetteltext("einkaufszettel3")
  568.             ELSEIF zettel=4 then
  569.                LET zettel=0
  570.                IF gedruckt=0 then
  571.                   CALL zetteltext("druckervorbereiten")
  572.                ELSEIF gedruckt=1 then
  573.                   CALL zetteltext("druckfertig")
  574.                END IF
  575.             END IF
  576.          END IF
  577.     CASE 4
  578.          IF ftext$(4)="EINTRAG PER HAND" then
  579.             CALL tastatureingabe  ! Eingaberoutine
  580.          END IF
  581.     CASE 5
  582.          IF ftext$(5)="TAGE TAUSCHEN" or ftext$(5)="BESTÄTIGUNG" then
  583.             CALL tauschen         ! Tauschroutine
  584.          ELSEIF ftext$(5)="WEITERE ZETTELSEITE ZEIGEN" then
  585.             IF ez=1 then          ! Wenn Seite 1
  586.                CALL zetteltext("einkaufszettel2")     ! dann Seite 2 zeigen
  587.                LET ez=2           ! Flag fÜr Seite 2 setzen
  588.             ELSEIF ez=2 then      ! Wenn Seite 2
  589.                CALL zetteltext("einkaufszettel3")     ! dann Seite 3 zeigen
  590.                LET ez=3           ! Flag fÜr Seite 3 setzen
  591.             ELSEIF ez=3 then      ! Wenn Seite 3
  592.                CALL zetteltext("einkaufszettel1")     ! dann Seite 1 zeigen
  593.                LET ez=1           ! Flag fÜr Seite 1 setzen
  594.             END IF
  595.          ELSEIF ftext$(5)="INFORMATION" then
  596.             CALL zetteltext("bedienungausgabe")
  597.             CALL feldertext("ok")
  598.          END IF
  599.     CASE 6
  600.          IF ftext$(6)="WARUM GIBT ES Ö-K-O ?" then
  601.             CALL zetteltext("entstehung")   ! Was kann ÖKO ?
  602.             CALL feldertext("entstehung")   ! neue Feldertexte
  603.          ELSEIF ftext$(6)="WAS KANN Ö-K-O ?" then
  604.             CALL zetteltext("koennen")      ! Was kann ÖKO ?
  605.             CALL feldertext("koennen")      ! neue Feldertexte
  606.          ELSEIF ftext$(6)="WIE WIRD Ö-K-O BEDIENT ?" then
  607.             CALL zetteltext("bedienungallgemein")     ! Wie wird ÖKO bedient ?
  608.             CALL feldertext("bedienungallgemein")     ! neue Feldertexte
  609.          ELSEIF ftext$(6)="INFO ZUR KÜCHENZETTELERSTELLUNG" then
  610.             CALL zetteltext("bedienungkuechenzettel")
  611.             CALL feldertext("ok")
  612.          END IF
  613.     CASE 7
  614.          IF ftext$(7)="KÜCHENZETTEL FERTIG" then
  615.             LET progteil=1        ! Einkaufszettelerstellung
  616.             LET ez=1              ! Flag fÜr Seite 1
  617.             LET tagesleisteflag=0      ! Maustest fÜr Tage aus
  618.             CALL zetteltext("einkaufszettel1")   ! Einkaufszettel 1 zeigen
  619.             CALL feldertext("einkaufswahl")      ! Einkaufsauswahlfelder zeigen
  620.             SET color 3
  621.             CALL zentrieren("Bitte warten - ÖKO sortiert !",150,185)
  622.             CALL zutatensortieren      ! Gerichtzutaten zur Ausgabe sortieren
  623.             CALL wareeinlesen     ! Ware anzeigen
  624.          ELSEIF ftext$(7)="INFO ZUR EINKAUFSZETTELERSTELLUNG" then
  625.             CALL zetteltext("bedienungeinkaufszettel")
  626.             CALL feldertext("ok")
  627.          ELSEIF ftext$(7)="NEUSTART" and druck=0 then
  628.             LET druck=1
  629.             CALL zetteltext("erstdrucken")
  630.             CALL feldertext("ok")
  631.          ELSEIF ftext$(7)="NEUSTART" and druck=1 then
  632.             LET neustart=1
  633.             EXIT SUB              ! nicht klingeln
  634.          END IF
  635.     CASE 8
  636.          IF ftext$(8)="EINKAUFSZETTEL FERTIG" then
  637.             LET progteil=2        ! Ausgabeteil
  638.             CALL zetteltext("druckervorbereiten")     ! Information
  639.             CALL feldertext("ausgabe")      ! Ausgabefelder zeigen
  640.          ELSEIF ftext$(8)="ENDE" and druck=0 then
  641.             LET druck=1
  642.             CALL zetteltext("erstdrucken")
  643.             CALL feldertext("ok")
  644.          ELSEIF ftext$(8)="ENDE" and druck=1 then
  645.             LET zuende=1
  646.          END IF
  647.     END SELECT
  648.     CALL quittungston
  649. END SUB
  650.  
  651. SUB tagesleiste                   ! Tagesleiste aufbauen
  652.     LET Tagesleisteflag=1         ! Flag fÜr Maustest Tagesleiste an
  653.     FOR i=0 to 6
  654.         SET color 2
  655.         BOX AREA 10+i*44,45+i*44,0,20  ! Tagesfeldschatten
  656.         SET color 1
  657.         BOX AREA 0+i*44,35+i*44,10,30  ! Tagesfeld
  658.         SET color 2
  659.         BOX LINES 0+i*44,35+i*44,10,30      ! Tagesfeldrahmen
  660.     NEXT i
  661.     CALL feldertext("modimidofrsaso")  ! WochentagskÜrzel eintragen
  662.     BOX KEEP 0,310,0,30 in tagesleiste$     ! Tagesleiste speichern
  663.     SET color 3
  664.     PLOT TEXT, at xt,17:tagtext$(tag)  ! Tag in rot
  665. END SUB
  666.  
  667. SUB taginvertieren
  668.     LET tagesleisteflag=1         ! Maustest Tagesleiste an
  669.     BOX SHOW tagesleiste$ at 0,0  ! gespeicherte Tagesleiste darstellen
  670.     SET color 3
  671.     CALL modimidofrsaso           ! WochentagskÜrzel einlesen
  672.     PLOT TEXT,at xt,17 :tagtext$(tag)  ! angeklickten Tag in rot
  673. END SUB
  674.  
  675. SUB gerichteinlesen               ! Gerichte in Vorschlagszeile anzeigen
  676.     SET color 1
  677.     BOX AREA 1,299,179,197        ! Vorschlagszeile weiß
  678.     IF hand=1 then                ! Nach Handeintrag
  679.        LET anzeigegericht$=gerichtspeicher$      ! gespeichertes Gericht weider zeigen
  680.     ELSEIF hand=0 then
  681.        READ anzeigegericht$       ! anzeigegericht$=Einlesevariable fÜr Gericht
  682.        FOR i=1 to 7
  683.            READ einlesezutat$(i)  ! einlesezutat$(i)=Einlesevariable fÜr Zutaten
  684.        NEXT i
  685.     END IF
  686.     IF anzeigegericht$="Vorschlagsliste beginnt von vorn !" then RESTORE
  687.     SET color 3                   ! Vorzeile: Datas zurÜcksetzen, wenn Listenende
  688.     CALL zentrieren(anzeigegericht$,150,185)     ! in rot ausgeben
  689.     LET hand=0                    ! Handeintragsmarkierung löschen
  690.     LET tagversuch=0              ! Überschreibschutz an
  691. END SUB
  692.  
  693. SUB gerichteintragen
  694.     IF anzeigegericht$="Vorschlagsliste beginnt von vorn !" then
  695.        CALL zetteltext("listevonvorn")      ! Hinweis : Listenende
  696.        CALL feldertext("ok")
  697.        EXIT SUB
  698.     ELSEIF tagbelegt(tag)=tag and tagversuch=0 then   ! Wenn Tag schon belegt
  699.        LET tagversuch=1           ! erster Versuch Tag zu Überschreiben
  700.        CALL zetteltext("belegtertag")  ! Hinweis
  701.        CALL feldertext("ok")
  702.        EXIT SUB
  703.     END IF
  704.     IF anzeigegericht$<>"- - - - -" then    ! Wenn keine Löschung per Hand
  705.        LET gericht$(tag)=anzeigegericht$    ! Einlesevariable=Tagesvariable
  706.        LET tagbelegt(tag)=tag     ! Tag als belegt kennzeichnen
  707.        IF hand=0 then             ! wenn kein Handeintrag 
  708.           FOR i=1 to 7
  709.               LET zutaten$(tag,i)=einlesezutat$(i)    ! Zutaten in ein Feld (7 Tage x 5 Zutaten)
  710.           NEXT i
  711.        END IF
  712.     ELSEIF anzeigegericht$="- - - - -" then      ! Wenn Löschung,dann
  713.        LET gericht$(tag)=""       ! nichts auf den Zettel
  714.        LET tagbelegt(tag)=0       ! Belegtzeichen löschen
  715.        FOR i=1 to 7
  716.            LET zutaten$(tag,i)=""      ! Zutaten im Feld löschen
  717.        NEXT i
  718.     END IF
  719.     CALL zetteltext("kuechenzettel")   ! ergänzter KÜchenzettel               
  720.     CALL gerichteinlesen
  721. END SUB
  722.  
  723. SUB tastatureingabe               ! von Tastatur Gericht oder Ware einlesen
  724.     IF progteil=0 then            ! Gerichteingabe
  725.        CALL feldertext("tastatur")
  726.        CALL zetteltext("handeintrag")  ! Info
  727.        LET maxzeichen=37          ! Gerichte bis zu 35 Zeichen (2-37)
  728.        LET gerichtspeicher$=anzeigegericht$      ! Letze Anzeige speichern
  729.     ELSEIF progteil=1 then        ! Wareneingabe
  730.        CALL feldertext("tastatur")
  731.        CALL zetteltext("handeintrageinkauf")     ! Info
  732.        LET maxzeichen=20          ! Waren bis zu 18 Zeichen (2-20)
  733.     END IF
  734.     CALL quittungston
  735.     SET cursor "OFF"              ! Cursor ausschalten
  736.     LET fertig=0                  ! Eingabeschlußflag aus
  737.     LET zahl=1                    ! Zeichenzähler
  738.     DO until fertig=1
  739.        LET zahl=zahl+1
  740.        IF zahl<=maxzeichen then   ! maximale Zeichenanzahl ?
  741.           GET KEY taste(zahl)     ! Zeichen von Tastatur einlesen
  742.           IF taste(zahl)=13 then
  743.              LET zahl=zahl-1      ! Returnzeichen löschen
  744.              LET fertig=1         ! Eingabeschlußflag an
  745.              DO
  746.                 IF chr$(taste(zahl))=" " then LET zahl=zahl-1   ! Abschließende Leerzeichen löschen
  747.              LOOP until chr$(taste(zahl))<>" "
  748.           ELSEIF taste(zahl)=8 then    ! Backspacekontrolle
  749.              IF zahl>=3 then      ! Backspacekontrolle
  750.                 LET zahl=zahl-2   ! Backspacekontrolle
  751.              ELSEIF zahl<3 then   ! Backspacekontrolle
  752.                 LET zahl=1        ! Backspacekontrolle
  753.              END IF               ! Backspacekontrolle
  754.           ELSEIF taste(zahl)<32 or taste(zahl)>126 then
  755.              LET zahl=zahl-1      ! Nur darstellbare Zeichen ausgeben                     
  756.           END IF
  757.        ELSEIF zahl>maxzeichen then     ! Mehr als max. Zeichenzahl ?
  758.           LET zahl=maxzeichen-1   ! Darstellung abweisen, aber Eingabe 
  759.        END IF                     ! wegen Schlußzeichen noch möglich !
  760.        IF progteil=0 then         ! beim KÜchenzettel
  761.           LET anzeigegericht$=""
  762.           FOR i=2 to zahl
  763.               LET anzeigegericht$=anzeigegericht$ & chr$(taste(i))
  764.               IF anzeigegericht$=" " then   ! FÜhrende Leerzeichen abweisen
  765.                  LET anzeigegericht$=""
  766.                  LET zahl=1
  767.               END IF
  768.           NEXT i
  769.           IF anzeigegericht$="" then LET anzeigegericht$="- - - - -"      ! Wenn durch Handeintrag Löschung         
  770.           SET color 1
  771.           BOX AREA 1,299,179,197  ! Vorschlagszeile weiß
  772.           SET color 3
  773.           CALL zentrieren(anzeigegericht$,150,185)
  774.        ELSEIF progteil=1 then     ! beim Einkaufszettel
  775.           LET anzeigeware$=""
  776.           FOR i=2 to zahl
  777.               LET anzeigeware$=anzeigeware$ & chr$(taste(i))
  778.               IF anzeigeware$=" " then      ! FÜhrende Leerzeichen abweisen
  779.                  LET anzeigeware$=""
  780.                  LET zahl=1
  781.               END IF
  782.           NEXT i
  783.           IF anzeigeware$="" then LET anzeigeware$="- - - - -"  ! Wenn durch Handeintrag Löschung         
  784.           SET color 1
  785.           BOX AREA 1,299,179,197  ! Vorschlagszeile weiß
  786.           SET color 3
  787.           CALL zentrieren(anzeigeware$,150,185)
  788.        END IF
  789.     LOOP
  790.     IF progteil=0 then            ! beim KÜchenzettel
  791.        LET hand=1                 ! als Handeintrag kennzeichnen (keine Zutaten einlesen)
  792.        CALL feldertext("menueauswahl")      ! Menueauswahlfelder wieder zeigen
  793.        CALL taginvertieren        ! Tagesleiste wieder zeigen
  794.        SET color 3
  795.        CALL zentrieren(anzeigegericht$,150,185)  ! Eintrag in Vorschlagzeile
  796.        CALL zetteltext("kuechenzettel")     ! KÜchenzettel wieder zeigen
  797.     ELSEIF progteil=1 then        ! beim Einkaufszettel
  798.        LET hand=1                 ! als Handeintrag kennzeichnen 
  799.        IF vorschlagszaehler<>warenzahl then      ! Wenn noch Waren in der Liste
  800.           CALL feldertext("einkaufswahl")   ! Einkaufsauswahlfelder zeigen
  801.        ELSEIF vorschlagszaehler=warenzahl then   ! Wenn Warenliste zuende
  802.           CALL feldertext("endeeinkaufswahl")    ! "Neuer Vorschlag" weg
  803.        END IF
  804.        IF warenzaehler<=36 then   ! Wenn Seite 1 noch nicht voll
  805.           CALL zetteltext("einkaufszettel1")     ! dann Seite 1 zeigen
  806.           LET ez=1                ! Flag fÜr Seite 1 setzen
  807.        ELSEIF warenzaehler<=72 then    ! Wenn Seite 2 noch nicht voll
  808.           CALL zetteltext("einkaufszettel2")     ! dann Seite 2 zeigen
  809.           LET ez=2                ! Flag fÜr Seite 2 setzen
  810.        ELSEIF warenzaehler<=108 then   ! Wenn Seite 3 noch nicht voll
  811.           CALL zetteltext("einkaufszettel3")     ! dann Seite 1 zeigen
  812.           LET ez=3                ! Flag fÜr Seite 3 setzen
  813.        END IF
  814.        SET color 3
  815.        CALL zentrieren(anzeigeware$,150,185)     ! Eintrag in Vorschlagzeile
  816.     END IF
  817. END SUB
  818.  
  819. SUB tauschen
  820.     IF tauschversuch=0 then       ! erstesmal tauschen ?
  821.        LET tauschversuch=1        ! Versuchanzahl merken
  822.        CALL zetteltext("tauschinfo")   ! Info ausgeben
  823.        CALL feldertext("ok")
  824.     ELSEIF tauschversuch=1 then   ! zweitesmal tauschen ?
  825.        CALL feldertext("tagetauschen")      ! Tauschfelder zeigen
  826.        SET color 3
  827.        CALL zentrieren("Bitte 1.Tag und Bestätigung",150,185)
  828.        LET tauschversuch=2        ! Versuchanzahl merken
  829.     ELSEIF tauschversuch=2 then   ! Bestätigung ?
  830.        SET color 1
  831.        BOX AREA 1,299,179,197     ! Vorschlagszeile weiß
  832.        SET color 3
  833.        CALL zentrieren("Jetzt 2.Tag und Bestätigung",150,185)
  834.        LET tauschtag1=tag         ! 1.Tag merken
  835.        LET tauschversuch=3        ! Versuchanzahl merken
  836.     ELSEIF tauschversuch=3 then
  837.        LET tauschtag2=tag         ! 2.Tag merken und jetzt tauschen :
  838.        LET hilfsgericht1$=gericht$(tauschtag1)   ! Hilfsgericht1=Gericht 1.Tag
  839.        LET hilfsgericht2$=gericht$(tauschtag2)   ! Hilfsgericht2=Gericht 2.Tag
  840.        LET gericht$(tag)=hilfsgericht1$     ! Gericht 2.Tag=Hilfsgericht1
  841.        LET gericht$(tauschtag1)=hilfsgericht2$   ! Gericht 1.Tag=Hilfsgericht2
  842.        FOR i=1 to 7               ! Zutaten tauschen :
  843.            LET hilfszutat1$(i)=zutaten$(tauschtag1,i)      ! Hilfszutat1=Zutaten 1.Tag
  844.            LET hilfszutat2$(i)=zutaten$(tauschtag2,i)      ! Hilfszutat2=Zutaten 2.Tag
  845.            LET zutaten$(tag,i)=hilfszutat1$(i)   ! Zutaten 2.Tag=Hilfszutaten1
  846.            LET zutaten$(tauschtag1,i)=hilfszutat2$(i)      ! Zutaten 1.Tag=Hilfszutaten2
  847.        NEXT i
  848.        LET tagbelegt(tag)=tag     ! Tag als belegt kennzeichnen, falls
  849.        LET tagbelegt(tauschtag1)=tauschtag1      ! vorher unbelegt
  850.        IF gericht$(tag)="" then   ! Falls jetzt unbelegt
  851.           LET tagbelegt(tag)=0    ! Belegtzeichen löschen
  852.           FOR i=1 to 7
  853.               LET zutaten$(tag,i)=""   ! Zutaten löschen
  854.           NEXT i
  855.        END IF
  856.        IF gericht$(tauschtag1)="" then
  857.           LET tagbelegt(tauschtag1)=0
  858.           FOR i=1 to 7
  859.               LET zutaten$(tauschtag1,i)=""      ! Zutaten löschen
  860.           NEXT i
  861.        END IF
  862.        LET tauschversuch=0        ! Versuchanzahl zurÜcksetzen
  863.        CALL zetteltext("kuechenzettel")     ! Neuen KÜchenzettel zeigen
  864.        CALL feldertext("menueauswahl")      ! Menuefelder zeigen
  865.        CALL tagesleiste           ! Tagesleiste zeigen
  866.        CALL gerichteinlesen       ! Nächstes Gericht anzeigen
  867.     END IF
  868. END SUB
  869.  
  870. SUB tauschende
  871.     LET tauschversuch=0           ! Versuchanzahl zurÜcksetzen
  872.     CALL zetteltext("kuechenzettel")   ! KÜchenzettel zeigen
  873.     CALL feldertext("menueauswahl")    ! Menuefelder zeigen
  874.     CALL tagesleiste              ! Tagesleiste zeigen
  875.     CALL gerichteinlesen          ! Nächstes Gericht anzeigen
  876. END SUB
  877.  
  878. SUB zutatensortieren
  879.     FOR i=1 to 7                  ! fÜr 7 Tage
  880.         FOR j=1 to 7              ! und je 7 Zutaten
  881.             LET z=z+1             ! 49x mitzählen
  882.             LET zutatenware$(z)=zutaten$(i,j)
  883.             FOR k=1 to z-1        ! Letzte Zutat mit einer bisherigen gleich ?
  884.                 IF zutatenware$(z)=zutatenware$(k) then LET zutatenware$(z)=""
  885.             NEXT k                ! Vorzeile : dann löschen !
  886.         NEXT j
  887.     NEXT i
  888.     FOR i=1 to z                  ! 49 mal
  889.         IF zutatenware$(i)<>""then     ! Nullstrings im Feld löschen
  890.            LET warenzahl=warenzahl+1   ! mitzählen der Zutaten=Warenzahl
  891.            LET einleseware$(warenzahl)=zutatenware$(i)
  892.         END IF
  893.     NEXT i
  894.     LET zutatenzahl=warenzahl     ! Zutatenzahl merken
  895.     DO
  896.        READ wegdamit$             ! Restdatas der Gerichte weglesen 
  897.     LOOP until wegdamit$="*"      ! Anfang der Warenliste
  898.     DO
  899.        LET warenzahl=warenzahl+1  ! weiterzählen der Warenzahl
  900.        READ einleseware$(warenzahl)    ! Warendatas
  901.        FOR i=1 to zutatenzahl     ! Vergleich, ob bereits als Zutat vorhanden ?
  902.            IF einleseware$(warenzahl)=einleseware$(i) then LET warenzahl=warenzahl-1     ! wenn ja: weg !
  903.        NEXT i
  904.     LOOP until einleseware$(warenzahl)="#"  ! Datas zu Ende
  905.     FOR i=1 to zutatenzahl
  906.         LET einleseware$(i)="-"&einleseware$(i)  ! als Zutaten kennzeichnen
  907.     NEXT i
  908. END SUB
  909.  
  910. SUB wareeinlesen                  ! Waren in Vorschlagszeile anzeigen
  911.     IF hand=1 then LET vorschlagszaehler=vorschlagszaehler-1    ! nach Handeintrag einen Vorschlag zurÜck
  912.     LET hand=0
  913.     SET color 1
  914.     BOX AREA 1,299,179,197        ! Vorschlagszeile weiß
  915.     LET vorschlagszaehler=vorschlagszaehler+1    ! Vorschlagszähler
  916.     IF vorschlagszaehler>warenzahl then LET vorschlagszaehler=warenzahl   ! Nicht Über die Gesamtmenge hinaus
  917.     LET anzeigeware$=einleseware$(vorschlagszaehler)  ! anzeigeware$=Einlesevariable fÜr Waren
  918.     IF anzeigeware$="#" then      ! Wenn letzte Ware aus der Liste
  919.        LET anzeigeware$="- - - - -"    ! das "#" löschen
  920.        CALL zetteltext("vorschlagsende")
  921.        CALL feldertext("ok")
  922.        EXIT SUB
  923.     END IF
  924.     SET color 3
  925.     CALL zentrieren(anzeigeware$,150,185)   ! Ware in rot ausgeben
  926. END SUB
  927.  
  928. SUB wareeintragen
  929.     IF vorschlagszaehler=warenzahl and anzeigeware$="- - - - -" then EXIT SUB  ! Wenn Einleseschluß u. kein Handeintrag
  930.     LET warenzaehler=warenzaehler+1    ! Waren bis max. 108 mitzählen
  931.     IF anzeigeware$="- - - - -" then   ! wenn Handeintrag nur RETURN
  932.        LET anzeigeware$=""
  933.        LET warenzaehler=warenzaehler-1
  934.        CALL wareeinlesen
  935.        EXIT SUB
  936.     END IF
  937.     IF warenzaehler>108 then      ! Wenn drei Seiten voll
  938.        CALL zetteltext("einkaufszettelvoll")     ! Information darÜber
  939.        CALL feldertext("ok")
  940.        EXIT SUB
  941.     END IF
  942.     LET ware$(warenzaehler)=anzeigeware$    ! Ware auf Zettel Übernehmen
  943.     IF warenzaehler<=36 then      ! Wenn Seite 1 noch nicht voll
  944.        CALL zetteltext("einkaufszettel1")   ! dann Seite 1 zeigen
  945.        LET ez=1                   ! Flag fÜr Seite 1 setzen
  946.     ELSEIF warenzaehler<=72 then  ! Wenn Seite 2 noch nicht voll
  947.        CALL zetteltext("einkaufszettel2")   ! dann Seite 2 zeigen
  948.        LET ez=2                   ! Flag fÜr Seite 2 setzen
  949.     ELSEIF warenzaehler<=108 then      ! Wenn Seite 3 noch nicht voll
  950.        CALL zetteltext("einkaufszettel3")   ! dann Seite 3 zeigen
  951.        LET ez=3                   ! Flag fÜr Seite 3 setzen
  952.     END IF
  953.     IF vorschlagszaehler<>warenzahl then CALL wareeinlesen
  954. END SUB
  955.  
  956. SUB drucker
  957.     CALL zetteltext("wartendruck")     ! Info
  958.     CALL feldertext("byebye")     ! keine Felder
  959.     CALL druckformat              ! Formatiert drucken
  960.     LET druck,gedruckt=1          ! merken, daß gedruckt
  961.     CALL zetteltext("druckfertig")     ! Info
  962.     CALL feldertext("ausgabe")    ! Felder wiederzeigen
  963. END SUB
  964.  
  965. SUB druckformat
  966.     PRINT #1: repeat$("*",60)
  967.     PRINT #1: "* Ö-K-O V0.9            KÜCHENZETTEL            ";date$[7:8];".";date$[5:6];".";date$[1:4];" *"
  968.     PRINT #1: repeat$("*",60)
  969.     PRINT #1:
  970.     PRINT #1: "     SAMSTAG    :   ";gericht$(1)
  971.     PRINT #1:
  972.     PRINT #1: "     SONNTAG    :   ";gericht$(2)
  973.     PRINT #1:
  974.     PRINT #1: "     MONTAG     :   ";gericht$(3)
  975.     PRINT #1:
  976.     PRINT #1: "     DIENSTAG   :   ";gericht$(4)
  977.     PRINT #1:
  978.     PRINT #1: "     MITTWOCH   :   ";gericht$(5)
  979.     PRINT #1:
  980.     PRINT #1: "     DONNERSTAG :   ";gericht$(6)
  981.     PRINT #1:
  982.     PRINT #1: "     FREITAG    :   ";gericht$(7)
  983.     PRINT #1:
  984.     PRINT #1:
  985.     PRINT #1:
  986.     PRINT #1: repeat$("*",60)
  987.     PRINT #1: "* Ö-K-O V0.9           EINKAUFSZETTEL           ";date$[7:8];".";date$[5:6];".";date$[1:4];" *"
  988.     PRINT #1: repeat$("*",60)
  989.     PRINT #1:
  990.     IF warenzaehler>108 then LET warenzaehler=108
  991.     IF warenzaehler/3<>int(warenzaehler/3) then  ! Warenzahl durch 3 teilbar ?
  992.        DO until warenzaehler/3=int(warenzaehler/3)    ! erhöhen, bis durch 3 teilbar
  993.           LET WARENZAEHLER=WARENZAEHLER+1   ! fÜr 3-spaltigen Ausdruck
  994.        LOOP
  995.     END IF
  996.     FOR i=1 to warenzaehler/3     ! Dreispaltige Ausgabe 
  997.         PRINT #1: " ";ware$(i)&repeat$(" ",20-len(ware$(i)))&ware$(warenzaehler/3+i)&repeat$(" ",20-len(ware$(warenzaehler/3+i)))&ware$((warenzaehler/3)*2+i)&repeat$(" ",20-len(ware$((warenzaehler/3)*2+i)))
  998.     NEXT i
  999. END SUB
  1000. !--------------------- Textzuweisungen fÜr Zettel -------------------------
  1001.  
  1002. SUB oeko
  1003.     LET ztext$(4)="Ö - K - O"
  1004.     LET ztext$(7)="***********************************"
  1005.     LET ztext$(9)="ÖTTI`S KÜCHEN-ORDNUNG"
  1006.     LET ztext$(11)="***********************************"
  1007.     LET ztext$(14)="V 0.9"
  1008.     LET ztext$(16)="1989 N.Ellert, 3208 Giesen"
  1009.     LET textfarbe(4)=4
  1010.     LET textfarbe(9)=9
  1011. END SUB
  1012.  
  1013. SUB entstehung
  1014.     LET ztext$(2)="Ö - K - O"
  1015.     LET ztext$(3)="------------------------------------"
  1016.     LET ztext$(4)="ÖTTI`S KÜCHEN-ORDNUNG"
  1017.     LET ztext$(6)="ist ein Programm, das ich schrieb,"
  1018.     LET ztext$(7)="weil Ötti freitags immer fragte :"
  1019.     LET ztext$(9)="Was soll ich nächste Woche kochen ?"
  1020.     LET ztext$(11)="Dann beschäftigte sie die Frage :"
  1021.     LET ztext$(13)="Was muß ich dafÜr einkaufen ?"
  1022.     LET ztext$(15)="Beide Fragen beantwortet nun Ö-K-O !"
  1023.     LET ztext$(16)="Interaktiv wird ein KÜchenzettel"
  1024.     LET ztext$(17)="und der passende Einkaufszettel"
  1025.     LET ztext$(18)="erstellt und gedruckt!"
  1026.     LET textfarbe(4)=4
  1027.     LET textfarbe(9)=9
  1028.     LET textfarbe(13)=13
  1029. END SUB
  1030.  
  1031. SUB koennen
  1032.     LET ztext$(2)="Ö - K - O"
  1033.     LET ztext$(3)="------------------------------------"
  1034.     LET ztext$(5)="ÖTTI`S KÜCHEN-ORDNUNG"
  1035.     LET ztext$(7)="kennt 60 Gerichte mit jeweils bis"
  1036.     LET ztext$(8)="zu 7 Zutaten. Aus diesen Gerichten"
  1037.     LET ztext$(9)="können fÜr eine Woche 7 Gerichte"
  1038.     LET ztext$(10)="ausgewählt werden."
  1039.     LET ztext$(12)="FÜr den Einkaufszettel sind bis"
  1040.     LET ztext$(13)="zu 108 Einträge möglich. DafÜr"
  1041.     LET ztext$(14)="schlägt Ö-K-O zuerst die Zutaten"
  1042.     LET ztext$(15)="der ausgewählten Gerichte und"
  1043.     LET ztext$(16)="dann Über 120 weitere Waren ohne"
  1044.     LET ztext$(17)="Doppelnennungen zum Einkauf vor !"
  1045.     LET textfarbe(5)=5
  1046. END SUB
  1047.  
  1048. SUB bedienungallgemein
  1049.     LET ztext$(1)="Ö - K - O"
  1050.     LET ztext$(2)="-------------"
  1051.     LET ztext$(3)="macht im ersten Feld links oben"
  1052.     LET ztext$(4)="Gericht- oder Einkaufsvorschläge,"
  1053.     LET ztext$(5)="die durch Anklicken eines Feldes"
  1054.     LET ztext$(6)="Übernommen oder abgewählt werden."
  1055.     LET ztext$(7)="Zutaten gewählter Gerichte werden"
  1056.     LET ztext$(8)="bei den Einkaufsvorschlägen berÜck-"
  1057.     LET ztext$(9)="sichtigt. Handeinträge und das Aus-"
  1058.     LET ztext$(10)="tauschen von Tagen sind möglich."
  1059.     LET ztext$(12)="Am Schluß wird der KÜchenzettel und"
  1060.     LET ztext$(13)="der Einkaufszettel ausgedruckt."
  1061.     LET ztext$(15)="Zu jeder Zeit können weitere"
  1062.     LET ztext$(16)="Informationen abgerufen werden."
  1063.     LET ztext$(17)="Bei Fehlern erscheinen Benutzer-"
  1064.     LET ztext$(18)="hinweise auf dem Zettel."
  1065.     LET textfarbe(1)=1
  1066.     LET textfarbe(4)=4
  1067. END SUB
  1068.  
  1069. SUB bedienungkuechenzettel
  1070.     LET ztext$(1)="INFO ZUR KÜCHENZETTELERSTELLUNG"
  1071.     LET ztext$(2)="-----------------------------------"
  1072.     LET ztext$(3)="Oberstes Feld:"
  1073.     LET ztext$(4)="Vorschlags- und Hinweiszeile"
  1074.     LET ztext$(5)="GERICHT EINTRAGEN:"
  1075.     LET ztext$(6)="Vorschlag auf den Zettel Übernehmen"
  1076.     LET ztext$(7)="NEUER VORSCHLAG:"
  1077.     LET ztext$(8)="Nächsten Gerichtvorschlag anzeigen"
  1078.     LET ztext$(9)="EINTRAG PER HAND:"
  1079.     LET ztext$(10)="Gericht per Hand eingeben/löschen"
  1080.     LET ztext$(11)="TAGE TAUSCHEN:"
  1081.     LET ztext$(12)="Gerichte auf dem Zettel vertauschen"
  1082.     LET ztext$(13)="INFO ZUR ... :"
  1083.     LET ztext$(14)="Infos zum jeweiligen Programmteil"
  1084.     LET ztext$(15)="KÜCHENZETTEL FERTIG:"
  1085.     LET ztext$(16)="Wechsel zur Einkaufszettelerstellung"
  1086.     LET ztext$(17)="Wochentagsleiste:"
  1087.     LET ztext$(18)="Auswahl des Tages fÜr Gerichteintrag"
  1088.     LET ztext$(19)="* * *"
  1089.     LET textfarbe(3)=3
  1090.     LET textfarbe(5)=5
  1091.     LET textfarbe(7)=7
  1092.     LET textfarbe(9)=9
  1093.     LET textfarbe(11)=11
  1094.     LET textfarbe(13)=13
  1095.     LET textfarbe(15)=15
  1096.     LET textfarbe(17)=17
  1097. END SUB
  1098.  
  1099. SUB kuechenzettel
  1100.     LET ztext$(2)="----------- KÜCHENZETTEL -----------"
  1101.     LET ztext$(4)="SAMSTAG:"
  1102.     LET ztext$(5)=gericht$(1)
  1103.     LET ztext$(6)="SONNTAG"
  1104.     LET ztext$(7)=gericht$(2)
  1105.     LET ztext$(8)="MONTAG:"
  1106.     LET ztext$(9)=gericht$(3)
  1107.     LET ztext$(10)="DIENSTAG:"
  1108.     LET ztext$(11)=gericht$(4)
  1109.     LET ztext$(12)="MITTWOCH:"
  1110.     LET ztext$(13)=gericht$(5)
  1111.     LET ztext$(14)="DONNERSTAG:"
  1112.     LET ztext$(15)=gericht$(6)
  1113.     LET ztext$(16)="FREITAG:"
  1114.     LET ztext$(17)=gericht$(7)
  1115.     LET ztext$(19)="------------------------------------"
  1116.     LET textfarbe(4)=4
  1117.     LET textfarbe(6)=6
  1118.     LET textfarbe(8)=8
  1119.     LET textfarbe(10)=10
  1120.     LET textfarbe(12)=12
  1121.     LET textfarbe(14)=14
  1122.     LET textfarbe(16)=16
  1123. END SUB
  1124.  
  1125. SUB listevonvorn
  1126.     LET ztext$(5)="Die Vorschlagsliste enthält"
  1127.     LET ztext$(7)="keine weiteren Einträge"
  1128.     LET ztext$(9)="und beginnt jetzt von vorn !"
  1129.     LET ztext$(11)="Dazu bitte"
  1130.     LET ztext$(13)="<NEUER VORSCHLAG>"
  1131.     LET ztext$(15)="anklicken !"
  1132.     LET textfarbe(7)=7
  1133.     LET textfarbe(13)=13
  1134. END SUB
  1135.  
  1136. SUB belegtertag
  1137.     LET ztext$(2)="FÜr"
  1138.     IF tag=1 then LET ztext$(4)="Samstag"
  1139.     IF tag=2 then LET ztext$(4)="Sonntag"
  1140.     IF tag=3 then LET ztext$(4)="Montag"
  1141.     IF tag=4 then LET ztext$(4)="Dienstag"
  1142.     IF tag=5 then LET ztext$(4)="Mittwoch"
  1143.     IF tag=6 then LET ztext$(4)="Donnerstag"
  1144.     IF tag=7 then LET ztext$(4)="Freitag"
  1145.     LET ztext$(6)="wurde bereits ein Eintrag gemacht !"
  1146.     LET ztext$(8)="Wenn dieser Überschrieben werden"
  1147.     LET ztext$(10)="soll, zur Bestätigung nochmals"
  1148.     LET ztext$(12)="auf <GERICHT EINTRAGEN> klicken."
  1149.     LET ztext$(14)="Sonst bitte einen"
  1150.     LET ztext$(16)="anderen Wochentag"
  1151.     LET ztext$(18)="wählen !"
  1152.     LET textfarbe(4)=4
  1153.     LET textfarbe(16)=16
  1154. END SUB
  1155.  
  1156. SUB handeintrag
  1157.     LET ztext$(1)="WICHTIGE HINWEISE"
  1158.     LET ztext$(2)="------------------------------------"
  1159.     LET ztext$(3)="Jetzt ist die Eingabe eines Gerichts"
  1160.     LET ztext$(4)="mit höchstens 35 Zeichen möglich."
  1161.     LET ztext$(5)="FÜr Ü,ö,ä,ß nur ue,oe,ae,ss benutzen."
  1162.     LET ztext$(6)="Falsche Eingaben können durch"
  1163.     LET ztext$(7)="<BACKSPACE>"
  1164.     LET ztext$(8)="wieder gelöscht werden. Abschließend"
  1165.     LET ztext$(9)="<RETURN>"
  1166.     LET ztext$(10)="drÜcken. Nur <RETURN> löscht die"
  1167.     LET ztext$(11)="Vorschlagszeile. Danach ist die"
  1168.     LET ztext$(12)="Übernahme des Eintrags oder der"
  1169.     LET ztext$(13)="Löschung auf den KÜchenzettel mit"
  1170.     LET ztext$(14)="<GERICHT EINTRAGEN>"
  1171.     LET ztext$(15)="möglich. ACHTUNG: Bei Handeinträgen"
  1172.     LET ztext$(16)="kennt ÖKO keine Zutaten und kann"
  1173.     LET ztext$(17)="diese fÜr den Einkaufszettel auch"
  1174.     LET ztext$(18)="nicht vorschlagen !!!"
  1175.     LET ztext$(19)="------------------------------------"
  1176.     LET textfarbe(1)=1
  1177.     LET textfarbe(7)=7
  1178.     LET textfarbe(9)=9
  1179.     LET textfarbe(14)=14
  1180. END SUB
  1181.  
  1182. SUB handeintrageinkauf
  1183.     LET ztext$(2)="HINWEIS"
  1184.     LET ztext$(3)="------------------------------------"
  1185.     LET ztext$(5)="Jetzt ist die Eingabe einer Ware"
  1186.     LET ztext$(6)="mit höchstens 18 Zeichen möglich."
  1187.     LET ztext$(8)="FÜr Ü,ö,ä,ß nur ue,oe,ae,ss benutzen."
  1188.     LET ztext$(10)="Falsche Eingaben können durch"
  1189.     LET ztext$(11)="<BACKSPACE>"
  1190.     LET ztext$(12)="wieder gelöscht werden."
  1191.     LET ztext$(14)="Nach Eingabeschluß bitte"
  1192.     LET ztext$(15)="<RETURN>"
  1193.     LET ztext$(16)="drÜcken. Nur <RETURN> fÜhrt zum"
  1194.     LET ztext$(17)="Einkaufszettel zurÜck !"
  1195.     LET textfarbe(2)=2
  1196.     LET textfarbe(11)=11
  1197.     LET textfarbe(15)=15
  1198. END SUB
  1199.  
  1200. SUB tauschinfo
  1201.     LET ztext$(1)="TAGE TAUSCHEN"
  1202.     LET ztext$(2)="------------------------------------"
  1203.     LET ztext$(3)="ermöglicht es, die Gerichte von zwei"
  1204.     LET ztext$(4)="Tagen auf dem Zettel zu vertauschen."
  1205.     LET ztext$(6)="Die Bedienung ist folgende :"
  1206.     LET ztext$(8)="Ersten Tag anklicken"
  1207.     LET ztext$(9)="<Bestätigung> anklicken"
  1208.     LET ztext$(10)="Zweiten Tag anklicken"
  1209.     LET ztext$(11)="<Bestätigung> anklicken"
  1210.     LET ztext$(13)="Um den Tausch vornehmen zu können"
  1211.     LET ztext$(14)="muß nach diesem Hinweis nochmals"
  1212.     LET ztext$(16)="<TAGE TAUSCHEN>"
  1213.     LET ztext$(18)="angeklickt werden !"
  1214.     LET ztext$(19)="------------------------------------"
  1215.     LET textfarbe(1)=1
  1216.     LET textfarbe(16)=16
  1217. END SUB
  1218.  
  1219. SUB bedienungeinkaufszettel
  1220.     LET ztext$(1)="INFO ZUR EINKAUFSZETTELERSTELLUNG"
  1221.     LET ztext$(2)="-----------------------------------"
  1222.     LET ztext$(3)="Oberstes Feld:"
  1223.     LET ztext$(4)="Vorschlagszeile (Zutaten gewählter"
  1224.     LET ztext$(5)="Gerichte sind mit - gekennzeichnet)"
  1225.     LET ztext$(6)="WARE EINTRAGEN:"
  1226.     LET ztext$(7)="Vorschlag Übernehmen (max. 108 mal)"
  1227.     LET ztext$(8)="NÄCHSTE WARE:"
  1228.     LET ztext$(9)="Nächsten Warenvorschlag anzeigen"
  1229.     LET ztext$(10)="EINTRAG PER HAND:"
  1230.     LET ztext$(11)="Ware / Kommentar per Hand eingeben"
  1231.     LET ztext$(12)="WEITERE ZETTELSEITE ZEIGEN:"
  1232.     LET ztext$(13)="Die drei Zettelseiten durchblättern"
  1233.     LET ztext$(14)="INFO ZUR ... :"
  1234.     LET ztext$(15)="Infos zum jeweiligen Programmteil"
  1235.     LET ztext$(16)="EINKAUFSZETTEL FERTIG:"
  1236.     LET ztext$(17)="Wechsel zu Druckerausgabe,"
  1237.     LET ztext$(18)="Neustart und Ende"
  1238.     LET ztext$(19)="* * *"
  1239.     LET textfarbe(3)=3
  1240.     LET textfarbe(6)=6
  1241.     LET textfarbe(8)=8
  1242.     LET textfarbe(10)=10
  1243.     LET textfarbe(12)=12
  1244.     LET textfarbe(14)=14
  1245.     LET textfarbe(16)=16
  1246. END SUB
  1247.  
  1248. SUB einkaufszettel1               ! Ausgabe in zwei Reihen
  1249.     LET ztext$(1)="------ EINKAUFSZETTEL Seite 1 ------"
  1250.     LET ztext$(2)=ware$(1)&repeat$(" ",19-len(ware$(1)))&ware$(19)&repeat$(" ",18-len(ware$(19)))
  1251.     LET ztext$(3)=ware$(2)&repeat$(" ",19-len(ware$(2)))&ware$(20)&repeat$(" ",18-len(ware$(20)))
  1252.     LET ztext$(4)=ware$(3)&repeat$(" ",19-len(ware$(3)))&ware$(21)&repeat$(" ",18-len(ware$(21)))
  1253.     LET ztext$(5)=ware$(4)&repeat$(" ",19-len(ware$(4)))&ware$(22)&repeat$(" ",18-len(ware$(22)))
  1254.     LET ztext$(6)=ware$(5)&repeat$(" ",19-len(ware$(5)))&ware$(23)&repeat$(" ",18-len(ware$(23)))
  1255.     LET ztext$(7)=ware$(6)&repeat$(" ",19-len(ware$(6)))&ware$(24)&repeat$(" ",18-len(ware$(24)))
  1256.     LET ztext$(8)=ware$(7)&repeat$(" ",19-len(ware$(7)))&ware$(25)&repeat$(" ",18-len(ware$(25)))
  1257.     LET ztext$(9)=ware$(8)&repeat$(" ",19-len(ware$(8)))&ware$(26)&repeat$(" ",18-len(ware$(26)))
  1258.     LET ztext$(10)=ware$(9)&repeat$(" ",19-len(ware$(9)))&ware$(27)&repeat$(" ",18-len(ware$(27)))
  1259.     LET ztext$(11)=ware$(10)&repeat$(" ",19-len(ware$(10)))&ware$(28)&repeat$(" ",18-len(ware$(28)))
  1260.     LET ztext$(12)=ware$(11)&repeat$(" ",19-len(ware$(11)))&ware$(29)&repeat$(" ",18-len(ware$(29)))
  1261.     LET ztext$(13)=ware$(12)&repeat$(" ",19-len(ware$(12)))&ware$(30)&repeat$(" ",18-len(ware$(30)))
  1262.     LET ztext$(14)=ware$(13)&repeat$(" ",19-len(ware$(13)))&ware$(31)&repeat$(" ",18-len(ware$(31)))
  1263.     LET ztext$(15)=ware$(14)&repeat$(" ",19-len(ware$(14)))&ware$(32)&repeat$(" ",18-len(ware$(32)))
  1264.     LET ztext$(16)=ware$(15)&repeat$(" ",19-len(ware$(15)))&ware$(33)&repeat$(" ",18-len(ware$(33)))
  1265.     LET ztext$(17)=ware$(16)&repeat$(" ",19-len(ware$(16)))&ware$(34)&repeat$(" ",18-len(ware$(34)))
  1266.     LET ztext$(18)=ware$(17)&repeat$(" ",19-len(ware$(17)))&ware$(35)&repeat$(" ",18-len(ware$(35)))
  1267.     LET ztext$(19)=ware$(18)&repeat$(" ",19-len(ware$(18)))&ware$(36)&repeat$(" ",18-len(ware$(36)))
  1268.     LET textfarbe(1)=1
  1269. END SUB
  1270.  
  1271. SUB einkaufszettel2               ! Ausgabe in zwei Reihen
  1272.     LET ztext$(1)="------ EINKAUFSZETTEL Seite 2 ------"
  1273.     LET ztext$(2)=ware$(37)&repeat$(" ",19-len(ware$(37)))&ware$(55)&repeat$(" ",18-len(ware$(55)))
  1274.     LET ztext$(3)=ware$(38)&repeat$(" ",19-len(ware$(38)))&ware$(56)&repeat$(" ",18-len(ware$(56)))
  1275.     LET ztext$(4)=ware$(39)&repeat$(" ",19-len(ware$(39)))&ware$(57)&repeat$(" ",18-len(ware$(57)))
  1276.     LET ztext$(5)=ware$(40)&repeat$(" ",19-len(ware$(40)))&ware$(58)&repeat$(" ",18-len(ware$(58)))
  1277.     LET ztext$(6)=ware$(41)&repeat$(" ",19-len(ware$(41)))&ware$(59)&repeat$(" ",18-len(ware$(59)))
  1278.     LET ztext$(7)=ware$(42)&repeat$(" ",19-len(ware$(42)))&ware$(60)&repeat$(" ",18-len(ware$(60)))
  1279.     LET ztext$(8)=ware$(43)&repeat$(" ",19-len(ware$(43)))&ware$(61)&repeat$(" ",18-len(ware$(61)))
  1280.     LET ztext$(9)=ware$(44)&repeat$(" ",19-len(ware$(44)))&ware$(62)&repeat$(" ",18-len(ware$(62)))
  1281.     LET ztext$(10)=ware$(45)&repeat$(" ",19-len(ware$(45)))&ware$(63)&repeat$(" ",18-len(ware$(63)))
  1282.     LET ztext$(11)=ware$(46)&repeat$(" ",19-len(ware$(46)))&ware$(64)&repeat$(" ",18-len(ware$(64)))
  1283.     LET ztext$(12)=ware$(47)&repeat$(" ",19-len(ware$(47)))&ware$(65)&repeat$(" ",18-len(ware$(65)))
  1284.     LET ztext$(13)=ware$(48)&repeat$(" ",19-len(ware$(48)))&ware$(66)&repeat$(" ",18-len(ware$(66)))
  1285.     LET ztext$(14)=ware$(49)&repeat$(" ",19-len(ware$(49)))&ware$(67)&repeat$(" ",18-len(ware$(67)))
  1286.     LET ztext$(15)=ware$(50)&repeat$(" ",19-len(ware$(50)))&ware$(68)&repeat$(" ",18-len(ware$(68)))
  1287.     LET ztext$(16)=ware$(51)&repeat$(" ",19-len(ware$(51)))&ware$(69)&repeat$(" ",18-len(ware$(69)))
  1288.     LET ztext$(17)=ware$(52)&repeat$(" ",19-len(ware$(52)))&ware$(70)&repeat$(" ",18-len(ware$(70)))
  1289.     LET ztext$(18)=ware$(53)&repeat$(" ",19-len(ware$(53)))&ware$(71)&repeat$(" ",18-len(ware$(71)))
  1290.     LET ztext$(19)=ware$(54)&repeat$(" ",19-len(ware$(54)))&ware$(72)&repeat$(" ",18-len(ware$(72)))
  1291.     LET textfarbe(1)=1
  1292. END SUB
  1293.  
  1294. SUB einkaufszettel3               ! Ausgabe in zwei Reihen
  1295.     LET ztext$(1)="------ EINKAUFSZETTEL Seite 3 ------"
  1296.     LET ztext$(2)=ware$(73)&repeat$(" ",19-len(ware$(73)))&ware$(91)&repeat$(" ",18-len(ware$(91)))
  1297.     LET ztext$(3)=ware$(74)&repeat$(" ",19-len(ware$(74)))&ware$(92)&repeat$(" ",18-len(ware$(92)))
  1298.     LET ztext$(4)=ware$(75)&repeat$(" ",19-len(ware$(75)))&ware$(93)&repeat$(" ",18-len(ware$(93)))
  1299.     LET ztext$(5)=ware$(76)&repeat$(" ",19-len(ware$(76)))&ware$(94)&repeat$(" ",18-len(ware$(94)))
  1300.     LET ztext$(6)=ware$(77)&repeat$(" ",19-len(ware$(77)))&ware$(95)&repeat$(" ",18-len(ware$(95)))
  1301.     LET ztext$(7)=ware$(78)&repeat$(" ",19-len(ware$(78)))&ware$(96)&repeat$(" ",18-len(ware$(96)))
  1302.     LET ztext$(8)=ware$(79)&repeat$(" ",19-len(ware$(79)))&ware$(97)&repeat$(" ",18-len(ware$(97)))
  1303.     LET ztext$(9)=ware$(80)&repeat$(" ",19-len(ware$(80)))&ware$(98)&repeat$(" ",18-len(ware$(98)))
  1304.     LET ztext$(10)=ware$(81)&repeat$(" ",19-len(ware$(81)))&ware$(99)&repeat$(" ",18-len(ware$(99)))
  1305.     LET ztext$(11)=ware$(82)&repeat$(" ",19-len(ware$(82)))&ware$(100)&repeat$(" ",18-len(ware$(100)))
  1306.     LET ztext$(12)=ware$(83)&repeat$(" ",19-len(ware$(83)))&ware$(101)&repeat$(" ",18-len(ware$(101)))
  1307.     LET ztext$(13)=ware$(84)&repeat$(" ",19-len(ware$(84)))&ware$(102)&repeat$(" ",18-len(ware$(102)))
  1308.     LET ztext$(14)=ware$(85)&repeat$(" ",19-len(ware$(85)))&ware$(103)&repeat$(" ",18-len(ware$(103)))
  1309.     LET ztext$(15)=ware$(86)&repeat$(" ",19-len(ware$(86)))&ware$(104)&repeat$(" ",18-len(ware$(104)))
  1310.     LET ztext$(16)=ware$(87)&repeat$(" ",19-len(ware$(87)))&ware$(105)&repeat$(" ",18-len(ware$(105)))
  1311.     LET ztext$(17)=ware$(88)&repeat$(" ",19-len(ware$(88)))&ware$(106)&repeat$(" ",18-len(ware$(106)))
  1312.     LET ztext$(18)=ware$(89)&repeat$(" ",19-len(ware$(89)))&ware$(107)&repeat$(" ",18-len(ware$(107)))
  1313.     LET ztext$(19)=ware$(90)&repeat$(" ",19-len(ware$(90)))&ware$(108)&repeat$(" ",18-len(ware$(108)))
  1314.     LET textfarbe(1)=1
  1315. END SUB
  1316.  
  1317. SUB einkaufszettelvoll
  1318.     LET ztext$(2)="Alle drei Seiten des"
  1319.     LET ztext$(3)="Einkaufszettels sind mit"
  1320.     LET ztext$(4)="108 Einkaufswaren gefÜllt !"
  1321.     LET ztext$(6)="Jetzt bitte erst ausdrucken mit"
  1322.     LET ztext$(8)="<EINKAUFSZETTEL FERTIG>"
  1323.     LET ztext$(10)="<DRUCKEN>"
  1324.     LET ztext$(12)="Danach weitere Einkaufszettel"
  1325.     LET ztext$(13)="wenn erforderlich mit"
  1326.     LET ztext$(15)="<NEUSTART>"
  1327.     LET ztext$(17)="erstellen."
  1328.     LET textfarbe(8)=8
  1329.     LET textfarbe(10)=10
  1330.     LET textfarbe(15)=15
  1331. END SUB
  1332.  
  1333. SUB vorschlagsende
  1334.     LET ztext$(5)="Die Liste der"
  1335.     LET ztext$(7)="Warenvorschläge"
  1336.     LET ztext$(9)="ist erschöpft !"
  1337.     LET ztext$(12)="Jetzt sind nur noch"
  1338.     LET ztext$(14)="Einträge per Hand"
  1339.     LET ztext$(16)="möglich."
  1340.     LET textfarbe(14)=14
  1341. END SUB
  1342.  
  1343. SUB druckervorbereiten
  1344.     LET ztext$(1)="WICHTIG !"
  1345.     LET ztext$(2)="-----------------------------------"
  1346.     LET ztext$(4)="Jetzt können KÜchen- und Einkaufs-"
  1347.     LET ztext$(5)="zettel auf den Drucker ausgegeben"
  1348.     LET ztext$(6)="werden."
  1349.     LET ztext$(8)="Dazu bitte Papier einlegen, Druck-"
  1350.     LET ztext$(9)="qualität und Schriftart wählen und"
  1351.     LET ztext$(10)="den Drucker auf"
  1352.     LET ztext$(12)="`ON LINE`"
  1353.     LET ztext$(14)="schalten ! Dann auf"
  1354.     LET ztext$(16)="<ALLE ZETTEL DRUCKEN>"
  1355.     LET ztext$(18)="klicken."
  1356.     LET textfarbe(1)=1
  1357.     LET textfarbe(12)=12
  1358.     LET textfarbe(16)=16
  1359. END SUB
  1360.  
  1361. SUB bedienungausgabe
  1362.     LET ztext$(1)="INFORMATION"
  1363.     LET ztext$(2)="-----------------------------------"
  1364.     LET ztext$(3)="ALLE ZETTEL DRUCKEN:"
  1365.     LET ztext$(4)="KÜchen- und Einkaufszettel drucken"
  1366.     LET ztext$(6)="ALLE ZETTEL DURCHBLÄTTERN:"
  1367.     LET ztext$(7)="KÜchen- und Einkaufszettel werden"
  1368.     LET ztext$(8)="nacheinander gezeigt"
  1369.     LET ztext$(10)="INFORMATION:"
  1370.     LET ztext$(11)="Diese gezeigte Seite"
  1371.     LET ztext$(13)="NEUSTART:"
  1372.     LET ztext$(14)="Ö-K-O beginnt von vorn"
  1373.     LET ztext$(16)="ENDE:"
  1374.     LET ztext$(17)="Ö-K-O wird beendet"
  1375.     LET ztext$(19)="* * *"
  1376.     LET textfarbe(3)=3
  1377.     LET textfarbe(6)=6
  1378.     LET textfarbe(10)=10
  1379.     LET textfarbe(13)=13
  1380.     LET textfarbe(16)=16
  1381. END SUB
  1382.  
  1383. SUB erstdrucken
  1384.     LET ztext$(4)="A C H T U N G"
  1385.     LET ztext$(5)="*****************"
  1386.     LET ztext$(7)="KÜchen- und Einkaufszettel"
  1387.     LET ztext$(8)="sind noch nicht ausgedruckt"
  1388.     LET ztext$(9)="und bei <NEUSTART> und <ENDE>"
  1389.     LET ztext$(10)="verloren !!!"
  1390.     LET ztext$(12)="Bitte erst ausdrucken !"
  1391.     LET ztext$(14)="Wenn kein Ausdruck gewÜnscht,"
  1392.     LET ztext$(15)="dann nochmals auf <NEUSTART>"
  1393.     LET ztext$(16)="oder <ENDE> klicken."
  1394.     LET textfarbe(4)=4
  1395.     LET textfarbe(12)=12
  1396. END SUB
  1397.  
  1398. SUB wartendruck
  1399.     LET ztext$(8)="Moment bitte,"
  1400.     LET ztext$(10)="Druckerausgabe"
  1401.     LET ztext$(12)="beginnt !"
  1402.     LET textfarbe(10)=10
  1403. END SUB
  1404.  
  1405. SUB druckfertig
  1406.     LET ztext$(1)="Druckerausgabe beendet"
  1407.     LET ztext$(2)="-----------------------------------"
  1408.     LET ztext$(3)="Die Zettel können bei Bedarf noch"
  1409.     LET ztext$(4)="mehrmals gedruckt werden. Wieder"
  1410.     LET ztext$(5)="Papier einlegen, Druckqualität und"
  1411.     LET ztext$(6)="Schriftart wählen und den Drucker"
  1412.     LET ztext$(8)="`ON LINE`"
  1413.     LET ztext$(10)="schalten ! Dann auf"
  1414.     LET ztext$(12)="<ALLE ZETTEL DRUCKEN>"
  1415.     LET ztext$(14)="klicken. Sonst bitte"
  1416.     LET ztext$(16)="<NEUSTART> oder <ENDE>"
  1417.     LET ztext$(18)="wählen."
  1418.     LET textfarbe(1)=1
  1419.     LET textfarbe(8)=8
  1420.     LET textfarbe(12)=12
  1421.     LET textfarbe(16)=16
  1422. END SUB
  1423.  
  1424. SUB byebye
  1425.     LET ztext$(7)="Ö-K-O wÜnscht guten Appetit !"
  1426.     LET ztext$(11)="Auf Wiedersehen nächste Woche !"
  1427.     LET ztext$(18)="1989 N.Ellert, 3208 Giesen"
  1428.     LET textfarbe(7)=7
  1429.     LET textfarbe(11)=11
  1430. END SUB
  1431.  
  1432. ! ------------------------ Textzuweisungen fÜr Felder --------------------
  1433.  
  1434. SUB modimidofrsaso
  1435.     LET tagtext$(1)="SA"
  1436.     LET tagtext$(2)="SO"
  1437.     LET tagtext$(3)="MO"
  1438.     LET tagtext$(4)="DI"
  1439.     LET tagtext$(5)="MI"
  1440.     LET tagtext$(6)="DO"
  1441.     LET tagtext$(7)="FR"
  1442. END SUB
  1443.  
  1444. SUB startinfo
  1445.     LET ftext$(3)="START"
  1446.     LET ftext$(6)="WARUM GIBT ES Ö-K-O ?"
  1447.     LET textfarbe(3)=3
  1448.     LET textfarbe(6)=6
  1449. END SUB
  1450.  
  1451. SUB menueauswahl
  1452.     LET ftext$(2)="GERICHT EINTRAGEN"
  1453.     LET ftext$(3)="NEUER VORSCHLAG"
  1454.     LET ftext$(4)="EINTRAG PER HAND"
  1455.     LET ftext$(5)="TAGE TAUSCHEN"
  1456.     LET ftext$(6)="INFO ZUR KÜCHENZETTELERSTELLUNG"
  1457.     LET ftext$(7)="KÜCHENZETTEL FERTIG"
  1458. END SUB
  1459.  
  1460. SUB einkaufswahl
  1461.     LET ftext$(2)="WARE EINTRAGEN"
  1462.     LET ftext$(3)="NÄCHSTE WARE"
  1463.     LET ftext$(4)="EINTRAG PER HAND"
  1464.     LET ftext$(5)="WEITERE ZETTELSEITE ZEIGEN"
  1465.     LET ftext$(7)="INFO ZUR EINKAUFSZETTELERSTELLUNG"
  1466.     LET ftext$(8)="EINKAUFSZETTEL FERTIG"
  1467. END SUB
  1468.  
  1469. SUB zettelschluss
  1470.     LET ftext$(5)="WEITERE ZETTELSEITE ZEIGEN"
  1471.     LET ftext$(7)="INFO ZUR EINKAUFSZETTELERSTELLUNG"
  1472.     LET ftext$(8)="EINKAUFSZETTEL FERTIG"
  1473.     LET textfarbe(8)=8
  1474. END SUB
  1475.  
  1476. SUB tastatur
  1477.     IF progteil=0 then            ! KÜchenzettel
  1478.        LET ftext$(1)="Bitte Gericht per Tastatur eingeben"
  1479.     ELSEIF progteil=1 then        ! Einkaufszettel
  1480.        LET ftext$(1)="Bitte Ware per Tastatur eingeben"
  1481.     END IF
  1482.     LET textfarbe(1)=1
  1483. END SUB
  1484.  
  1485. SUB tagetauschen
  1486.     LET ftext$(1)=""
  1487.     LET ftext$(2)="ABBRUCH"
  1488.     LET ftext$(5)="BESTÄTIGUNG"
  1489.     LET textfarbe(5)=5
  1490. END SUB
  1491.  
  1492. SUB ausgabe
  1493.     LET ftext$(1)="ALLE ZETTEL DRUCKEN"
  1494.     LET ftext$(3)="ALLE ZETTEL DURCHBLÄTTERN"
  1495.     LET ftext$(5)="INFORMATION"
  1496.     LET ftext$(7)="NEUSTART"
  1497.     LET ftext$(8)="ENDE"
  1498. END SUB
  1499.  
  1500. SUB ok
  1501.     LET ftext$(1)="OK"
  1502.     LET textfarbe(1)=1
  1503. END SUB
  1504.  
  1505. !------------------------ Hauptprogramm ----------------------------------
  1506.  
  1507. CALL programmanfang               ! Initialisierungen
  1508. CALL programmhauptteil            ! Hauptschleife
  1509. CALL programmschluss              ! Aufräumen
  1510. END
  1511.  
  1512.  
  1513.